package cn.cl.utils;

import cn.cl.pojo.Content;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.springframework.stereotype.Component;

import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

/**
 * 标题：爬虫
 * 作者：何处是归程
 * 时间：2020/4/12 - 15:56
 */
@Component
public class HtmlParseUtil {
	public List<Content> parseJD(String keywords) throws IOException {
		// 获取请求：https://search.jd.com/Search?keyword=java
		// 前提： 需要联网，不能获取ajax请求
		String url = "https://search.jd.com/Search?keyword=" + keywords;
		// 解析网页（Jsoup返回Document就是浏览器的Document对象）
		Document document = Jsoup.parse(new URL(url), 30000);
		// 所有JS中可以使用的方法，这里都能使用！
		Element element = document.getElementById("J_goodsList");
		// 获取所有的li元素
		Elements lis = element.getElementsByTag("li");
		// 获取元素中的内容，这里li就是每一个li
		ArrayList<Content> contentList = new ArrayList<>();
		for (Element li : lis) {
			// 图片获取不到：所有的图片默认都是懒加载的
			String img = li.getElementsByTag("img").eq(0).attr("source-data-lazy-img");
			String price = li.getElementsByClass("p-price").eq(0).text();
			String title = li.getElementsByClass("p-name").eq(0).text();
			Content content = new Content(title, img, price);
			contentList.add(content);
		}
		return contentList;
	}
}
